package main

import "fmt"

// 指针传值示例
func modify1(x int) {
	x = 100
}

func modify2(y *int) {
	*y = 100
}

// go 指针
/*
& 取地址
* 根据地址取值
适用指针的数据类型 int、float、bool、string、array、struct
*/
func main() {
	a := 10
	b := &a // 取地址
	fmt.Printf("%v %p \n", a, &a)
	fmt.Printf("%v type: %T \n", b, b)
	fmt.Println(*b) // 根据内存地址取值

	// 调用示例
	a = 1
	modify1(a)
	fmt.Println(a)

	modify2(&a)
	fmt.Println(a)
}
